home *** CD-ROM | disk | FTP | other *** search
/ Trusted Irix /B 4.0.4 / Trusted-Irix B-4.0.1.iso / dist / eoe1.idb / usr / include / sys / R2300.h.z / R2300.h
C/C++ Source or Header  |  1992-04-03  |  5KB  |  162 lines

  1. /**************************************************************************
  2.  *                                      *
  3.  *          Copyright (C) 1990, Silicon Graphics, Inc.          *
  4.  *                                      *
  5.  *  These coded instructions, statements, and computer programs  contain  *
  6.  *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
  7.  *  are protected by Federal copyright law.  They  may  not be disclosed  *
  8.  *  to  third  parties  or copied or duplicated in any form, in whole or  *
  9.  *  in part, without the prior written consent of Silicon Graphics, Inc.  *
  10.  *                                      *
  11.  **************************************************************************/
  12.  
  13. /* ------------------------------------------------------------------ */
  14. /* | Copyright Unpublished, MIPS Computer Systems, Inc.  All Rights | */
  15. /* | Reserved.  This software contains proprietary and confidential | */
  16. /* | information of MIPS and its suppliers.  Use, disclosure or     | */
  17. /* | reproduction is prohibited without the prior express written   | */
  18. /* | consent of MIPS.                                               | */
  19. /* ------------------------------------------------------------------ */
  20.  
  21. #ifndef __SYS_R2300_H__
  22. #define __SYS_R2300_H__
  23. #ident "$Revision: 1.15 $"
  24. /*
  25.  * R2300.h -- cpu board specific defines for R2300 (aka MBC)
  26.  */
  27.  
  28. #define    SBE_ADDR    0x1e000800    /* system bus error address */
  29.  
  30. #define    CPU_CONFIG    0x1e080006    /* cpu bd configuration register */
  31. #define    CONFIG_NOCP1    0x01        /* coprocessor 1 not present */
  32. #define    CONFIG_NOCP2    0x02        /* coprocessor 2 not present */
  33. #define    CONFIG_POWERUP    0x04        /* power-up or cpu bd reset */
  34. #define    CONFIG_VMEMEM    0x08        /* VME memory present */
  35.  
  36. #define    LED_REG        0x1e080003
  37. #define    LED_MASK    0x3f        /* led bits */
  38. #define    LED_LMEM_RUN    0x40        /* enable local memory */
  39. #define    LED_FPBD_RUN    0x80        /* enable fp board */
  40.  
  41. #define NVSTATE_ADDR    48        /* Byte that indicates if nv valid */
  42.  
  43. /* Clock and timer addresses */
  44. #define    RT_CLOCK_ADDR    (struct rt_clock *)PHYS_TO_K1(0x1e010003)
  45. #ifdef LANGUAGE_ASSEMBLY    /* used by some standalone assembler routines */
  46. #define    PT_CLOCK_ADDR    PHYS_TO_K1(0x1e001003)
  47. #else
  48. #define    PT_CLOCK_ADDR    (struct pt_clock *)PHYS_TO_K1(0x1e001003)
  49. #endif /* LANGUAGE_ASSEMBLY    */
  50. #define    TIM0_ACK_ADDR    (char *)PHYS_TO_K1(0x1e200003)
  51. #define    TIM1_ACK_ADDR    (char *)PHYS_TO_K1(0x1e200007)
  52.  
  53. /*
  54.  * VMEbus related defines
  55.  */
  56.  
  57. #define    VME_IMR        0x1e020003    /* interrupt mask */
  58. #define    VME_ISR        0x1e020007    /* interrupt status */
  59. #define    VME_IACK    0x1df00002    /* interrupt acknowledge */
  60. #define    VME_RMW_ADDR    0xbe400003    /* VME RMW toggle */
  61.  
  62. /*
  63.  * VME I/O space defines
  64.  */
  65. #define    VME_A16NPBASE    0x1d100000    /* a16 non-privileged address sp */
  66. #define VME_A16NPSIZE    0x00010000    /* size */
  67.  
  68. #define    VME_A16SBASE    0x1d000000    /* a16 supervisor address sp */
  69. #define VME_A16SSIZE    0x00010000    /* size */
  70.  
  71. #define    VME_A24SBASE    0x1c000000    /* a24 supervisor address sp */
  72. #define VME_A24SSIZE    0x01000000    /* size */
  73.  
  74.                     /* R2300 cannot reach a24 non-prov */
  75. #define VME_A24NPBASE    0x0        /* a24 non-privileged address sp */
  76. #define VME_A24NPSIZE    0x0        /* size */
  77.  
  78. #define    VME_A32NPBASE    0x18000000    /* a32 non-privileged address sp */
  79. #define VME_A32NPSIZE    0x04000000    /* size */
  80.  
  81. #define    VME_A32SBASE    0x0        /* a32 supervisor address sp */
  82. #define VME_A32SSIZE    0x0        /* size */
  83.  
  84.  
  85. #define vme_adapter(addr) 0        /* only 1 VME adapter */
  86.  
  87.  
  88. /*
  89.  * non-volatile ram addresses
  90.  * NOTE: everything must fit within 50 bytes for the 146818 TOD chip
  91.  */
  92. #define    NVLEN_MAX    50
  93. #define    NVOFF_BASE    0
  94.  
  95. /*
  96.  * netaddr is used by network software to determine the internet
  97.  * address, it should be a string containing the appropriate
  98.  * network address in "." format
  99.  */
  100. #define    NVOFF_NETADDR    (NVOFF_BASE)
  101. #define    NVLEN_NETADDR    16
  102.  
  103. /*
  104.  * lbaud/rbaud are the initial baud rates for the duart
  105.  * (e.g. "9600")
  106.  */
  107. #define    NVOFF_LBAUD    (NVOFF_NETADDR+NVLEN_NETADDR)
  108. #define    NVLEN_LBAUD    5
  109.  
  110. #define    NVOFF_RBAUD    (NVOFF_LBAUD+NVLEN_LBAUD)
  111. #define    NVLEN_RBAUD    5
  112.  
  113. /*
  114.  * bootfile is the initial program loaded on an autoboot
  115.  * (e.g. "bfs(0)mipsboot_le")
  116.  */
  117. #define    NVOFF_BOOTFILE    (NVOFF_RBAUD+NVLEN_RBAUD)
  118. #define    NVLEN_BOOTFILE    20
  119.  
  120. /*
  121.  * bootmode controls autoboots/warm starts/command mode on reset
  122.  * "a" => autoboot on reset
  123.  * "w" => warm start if restart block correct, else autoboot
  124.  * anything else cause entry to command mode
  125.  */
  126. #define    NVOFF_BOOTMODE    (NVOFF_BOOTFILE+NVLEN_BOOTFILE)
  127. #define    NVLEN_BOOTMODE    1
  128.  
  129. /*
  130.  * console controls what consoles are enabled at power-up
  131.  * 'a' indicates "all" consoles
  132.  * 'r' indicates both local and remote uarts
  133.  * anything else indicates only local uart
  134.  */
  135. #define    NVOFF_CONSOLE    (NVOFF_BOOTMODE+NVLEN_BOOTMODE)
  136. #define    NVLEN_CONSOLE    1
  137.  
  138. /*
  139.  * state maintains the current validity of the tod clock and
  140.  * non-volatile ram
  141.  * see NVSTATE_* definitions below
  142.  */
  143. #define    NVOFF_STATE    (NVOFF_CONSOLE+NVLEN_CONSOLE)
  144. #define    NVLEN_STATE    1
  145.  
  146. /*
  147.  * failcode is used by the power-on diagnostics to save a failure
  148.  * code for use by service techs
  149.  */
  150. #define    NVOFF_FAILCODE    (NVOFF_STATE+NVLEN_STATE)
  151. #define    NVLEN_FAILCODE    1
  152.  
  153. #define    NVLEN_TOTAL    (NVOFF_FAILCODE+NVLEN_FAILCODE)
  154. #if NVLEN_TOTAL > NVLEN_MAX
  155. # include "error -- non-volatile ram overflow"
  156. #endif
  157.  
  158. #define    dcache_wb(X,Y)
  159. #define    dcache_wbinval(X,Y)    dcache_inval(X,Y)
  160.  
  161. #endif /* __SYS_R2300_H__ */
  162.